草庐IT

Java Generics - 类本身的子类?

全部标签

java - 在 Java 中,如果子类用实例子变量隐藏静态父变量,那么继承方法将使用哪个变量?

这可能是一件坏事,如CanparentandchildclassinJavahavesameinstancevariable?中所讨论的那样.(如果更改父变量名称怎么办?那么它将不再被隐藏。)但是,我仍然很好奇静态/非静态不同的变量是否会相互隐藏。一方面,我希望它们是相同的变量名,因此会被隐藏,但另一方面,编译器似乎可能会根据静态来区分两者。 最佳答案 根据Java语言规范:如果该类声明了一个具有特定名称的字段,则该字段的声明被认为隐藏了父类(superclass)和该类的超接口(interface)中具有相同名称的任何和所有可访问

java - 父类(super class)和子类都有自己的接口(interface)

以下可以吗?(请记住,我没有编写类的主体,也没有编写接口(interface);-))abstractclassSuperClassimplementsSuperInterfaceclassSubClassextendsSuperClassimplementsSubInterface或者这通常被认为是不好的做法?让我感到奇怪的是,以下内容不起作用:ListmyList;...for(SuperInterfacesi:myList){...} 最佳答案 不好也不坏。SubClass在这里实现了SuperInterface和SubInt

java - 具有泛型返回类型的棘手静态泛型方法本身可能是泛型

我有一个类如下:publicclassMyConverter{publicTconvert(Objecto,Stringtypeidentifier,Tdummy){...dosomeconversionssuchasajavaarraytoanArrayListorviceversa...basedonatypeidentifiersyntaxsimilartoClass.getName()butwhich...embedsinformationaboutgenericsubtypes}}并希望能够做这样的一般事情:int[]ar={...};ArrayListdummy=null;

Java - (匿名子类)在对象实例构造期间覆盖方法

我正在维护一些Java8代码,如下所示:ClassEntity{protectedModeltheModel;publicEntity(){init();}protectedvoidinit(){this.theModel=newModel();}}ClassModel{}ClassSubModelextendsModel{}main{EntitynewEntity=newEntity(){@Overrideprotectedvoidinit(){this.theModel=newSubModel();}};}代码目前可以正确编译和运行,但我现在需要更新它。我的问题是:在newEnti

java - 你在子类中调用 super.finalize() 吗?

我(在某处)读到,当子类被垃圾回收时,不能保证调用父类的finalize(),这是否意味着大多数开发人员会覆盖finalize()在子类中调用super.finalize()? 最佳答案 Finalize不会自动为父类(superclass)调用。因此,如果您重写finalize,确保父类(superclass)得到清理的正确方法是protectedvoidfinalize(){try{//dosubclasscleanup}finally{super.finalize();}}请参阅这篇引用文章http://www.ibm.com

java - 如何正确声明子类的实例?

我目前正在Java中进行基于文本的冒险,目的是将其用作测试平台,以尝试从我正在阅读的这本Java书中学到的新东西。我现在正在尝试声明一个子类的实例(因为玩家被编写脚本来找到它)。父类是Item,它有两个子类:Weapon和Armour。但是,无论我尝试以何种方式声明它,我使用的IDE(Eclipse)都会标记该行并出现以下错误:NoenclosinginstanceoftypeItemisaccessible.MustqualifytheallocationwithanenclosinginstanceoftypeItem(e.g.x.newA()wherexisaninstanceo

Java:父类(super class)在某些条件下构造子类,可能吗?

我有这个条件publicclassA{publicaction(){System.out.println("ActiondoneinA");}}publicclassBextendsA{publicaction(){System.out.println("ActiondoneinB");}}当我创建B的实例时,该操作将只执行B中的操作,因为它会覆盖父类(superclass)的操作。问题是在我的项目中,父类(superclass)A已经被使用了太多次,我正在寻找一种方法,在某些条件下,当我创建A的实例时,它会检查它是否为真,用B替换自己。publicclassA{publicA(){i

java - 调用 java 子类保护方法时方法访问被拒绝

我有以下问题:我有一个类,试图使用反射来调用其OWN保护方法之一,但出现异常:java.lang.IllegalAccessException:访问方法被拒绝有人可以阐明这一点吗?基类:publicabstractclassBaseReceiverextendsBroadcastReceiver{@OverridepublicvoidonReceive(Contextcontext,Intentintent){//invokethecorrecteventmethod:Methodmethod;try{method=this.getClass().getDeclaredMethod("

java - 子类是否继承父类(super class)的私有(private)实例变量

Dosubclassesinheritprivatefields?这个问题解决了同样的问题,但我不太明白它如何满足下面(看似)矛盾的情况。http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html表示“子类不继承其父类的私有(private)成员。”这意味着它既不继承私有(private)实例变量也不继承私有(private)方法,对吧?但是,如果它从其父级继承公共(public)访问器方法,这将如何工作?它返回一个它不知道存在的实例变量?此外,我的计算机科学书籍(Baron的APComputerScienceA)

Java:覆盖子类中的抽象方法

我真的应该知道这一点,但出于某种原因我不明白以下内容。我的抽象类包含以下抽象方法:protectedabstractRuleDTOcreateRowToBeCloned(RuleDTOruleDTO);我还有另外一个类如下:EvaluationRuleDTOextendsfromRuleDTO然后在我的抽象类的子类中,我有以下实现,由于“必须覆盖或实现父类(superclass)型方法”而不允许:protectedEvaluationRuleDTOcreateRowToBeCloned(EvaluationRuleDTOruleDTO){但是,以下是允许的:protectedEvalu